/*
 * -------------------------------------------------------------
 *  FECHA      HORA     NOMBRE           COMENTARIO
 * -------------------------------------------------------------
 *  14/05/08   17:39    DAVID           Creación de interface.
 *  15/05/08   12:13    ALEX            Modificación javadoc y
 *					añadido el control de versiones
 *  15/05/08   17:00    SERGIO          Añadir comentarios setCoordenades,
 *                                      addInformació(/*), setInformacio
 *                                      y añadir metodo setInformació
 *  30/05/08   00:21    ALEX            Añadidos metodos SET.
 *
 */

package net.ieslaferreria.infoCiutat;

import java.util.Vector;

/**
 * Interficie que representa un lloc definit per l'usuari. Permeteix el seu
 * manteniment
 *
 * @author David Maqueda, Javi Xaranda, Alex Fernández, Sergio Soria.
 */
public interface PuntInteres extends Punt {
    
    /** 
     * Assigna el nom que li passem per parametre a l'atribut nom.
     * 
     * @param String
     */
    /* Assignem al atribut nom el string nom: this.nom = nom;
     * 
     */ 
    public void setNom(String nom);
    
    /** 
     * Assigna les coordenades x i y d'unt punt determinat calculades a partir 
     * del l'aresta i el numero que li passem per parametre 
     *
     * @param Aresta
     * @param int
     */
    /* Calcularà les coordenades x i y d'unt punt determinat passat com a 
     * parametre el numero de porta.
     * Valors necessaris per fer el calcul:
     * - Numero inici del punt inici de l'aresta... = nInici.
     * - Numero fi del puntfinal de l'aresta....... = nFi.
     * - Numero de porta........................... = nPorta.
     * - Coordenada x de punt inici................ = xPuntInici.
     * - Coordenada y de punt inici................ = yPuntInici.
     * - Coordenada x de punt final................ = xPuntFinal.
     * - Coordenada y de punt final................ = yPuntFinal.
     * - Distancia entre punt inici y punt final... = d.
     * - Distancia d'un tros....................... = d1.
     * 
     * Per fer el Calcul de les coordenades x i y primer tindrem que calcular
     * la distancia entre puntInici i puntFinal:
     *    
     *          d = sqrt(pow((xPuntFinal - xPuntInici),2) 
     *              + pow((yPuntFinal - yPuntInici),2)))
     * 
     * Una vegada tinguem la distància hem de calcular la distància d'un tros:
     * 
     *          d1 = distancia/nInici - nFi
     * 
     * Després calculem la llargada dels catets (paral·les als eixos del
     * sistema de referencia) de triangle que es forma entre el punt que 
     * busquem, el punt inici i un punt imaginari que te angle recte respecte 
     * als altres dos punts;
     * 
     *          dx = ((x2-x1)/d)*d1
     *          dy = ((y2-y1)/d)*d1
     * 
     * El següent pas serà calcular la x i la y del punt:
     * 
     *           x = (xPuntInici + dx)
     *           y = (yPuntInici + dy)
     */
    public void setCoordenades(Aresta aresta, int numero);
    
    /** 
     * Afegeix una linia a la taula d'informacio creada a l'atribut informació 
     * a partir del tipus d'informació que li passem i el valor del tipus
     * d'informació que li volem passar.
     * 
     * ex:
     * 	tipus = 'Preu entrada'
     *	informació = '5,50 €'
     * 
     * @param String
     * @param String
     */
    /* 
     * Cada vegada que es llançi aquest mètode haurà de crear un nou vector
     * i afegir-li a la posició 0 l'atribut (ex: Preu entrada) i a la posició 1 
     * afegirà el valor (ex: 5,50 €). 
     * 
     * Després haurà de insertar al vector informació el nou vector.
     */
    public void addInformacio(String tipus, String informacio);
   
    /** 
     * Modificarà la informacio d'un atribut determinat passant-li una possició
     * determinada per parametre
     * 
     * @param posicion
     * @param informació
     */
    /*
     * Agafem el el vector contingut dins de l'atribut informació en la posició
     * que li passem per paràmetre i li modifiquem el segon camp/posició
     * introduint-li la informació del paràmetre.
     */
    public void setInformacio(int posicio, String informacio);
    
    /**
     * Estableix el valor de l'atribut informació.
     * 
     * @param informacio
     */
    public void setInformacio(Vector informacio);

}
